package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import modelo.ModeloCategoria;
import vista.VistaCategoria;

public class ControladorCategoria implements ActionListener{

	private VistaCategoria vistacategoria;
	private ModeloCategoria modelocategoria;
	
	public  void Limpiar(){
		vistacategoria.getTxtCodigo().setText("");
		vistacategoria.getTxtDescripcion().setText("");
	}
	
	public ControladorCategoria(VistaCategoria vistacategoria){
		super();
		this.vistacategoria = vistacategoria;
		this.modelocategoria = new ModeloCategoria();
		
	}
	
	public void mostrarInfoCategoria(ModeloCategoria categoria){
		
		vistacategoria.getTxtCodigo().setText(categoria.getId());
		vistacategoria.getTxtDescripcion().setText(categoria.getDescripcion());
	}

	public void actionPerformed(ActionEvent ae) {
		String mensaje;
		ModeloCategoria categoriaEncontrado;
		
		int tipoMensaje=0;
			// BUSCAR
			if(ae.getActionCommand().equalsIgnoreCase(vistacategoria.getBtnBuscar().getText())){

				categoriaEncontrado = modelocategoria.consultarCategoria(vistacategoria.getTxtCodigo().getText());
				if (categoriaEncontrado == null){
					mensaje = "No se econtro el codigo";
					tipoMensaje = JOptionPane.INFORMATION_MESSAGE;
					JOptionPane.showMessageDialog(new JPanel(), mensaje,"Sistema la <<Guapa>>    Comida Rápida", tipoMensaje);
					Limpiar();
				}else{
					mostrarInfoCategoria(categoriaEncontrado);
				}
			}
		
		//guardar
		//if (ae.getSource()== vistacategoria.getBtnGuardar()){
		
			if(ae.getActionCommand().equalsIgnoreCase(vistacategoria.getBtnGuardar().getText())){
				
					//System.out.println("Acepto guardar");
					ModeloCategoria categoriaEncontrada;		
					ModeloCategoria categoriaActual = new ModeloCategoria(vistacategoria.getTxtCodigo().getText(),	vistacategoria.getTxtDescripcion().getText());
					
					categoriaEncontrada = modelocategoria.consultarCategoria(categoriaActual.getId());
									
					if (categoriaEncontrada == null){
					
						modelocategoria.registarCategoria(categoriaActual);
						mensaje="Categoria ingresada exitosamente";
						tipoMensaje = JOptionPane.INFORMATION_MESSAGE;
						JOptionPane.showMessageDialog(new JPanel(), mensaje,"Sistema <<La Guapa>>    Comida Rapida",tipoMensaje);
						Limpiar();
					
					}else{
						
						mensaje = "La Categoria que esta intentando ingresar ya se encuentra registrado";
						tipoMensaje = JOptionPane.WARNING_MESSAGE;
						JOptionPane.showMessageDialog(new JPanel(), mensaje,"Sistema <<La Guapa>>    Comida Rapida",tipoMensaje);
						//mostrarInfoLibro(categoriaActual);
						
					}
			
		}
			
		if (ae.getActionCommand().equalsIgnoreCase(vistacategoria.getBtnCancelar().getText())){
				Limpiar();
		}
		
		if (ae.getActionCommand().equalsIgnoreCase(vistacategoria.getBtnModificar().getText())){
			
			modelocategoria.setId(vistacategoria.getTxtCodigo().getText());
			modelocategoria.setDescripcion(vistacategoria.getTxtDescripcion().getText());		
			ModeloCategoria categoriaActual = new ModeloCategoria (vistacategoria.getTxtCodigo().getText(), vistacategoria.getTxtDescripcion().getText());
			
			ModeloCategoria categoriaEncontrada=modelocategoria.consultarCategoria(categoriaActual.getId());
			
			if (categoriaEncontrada == null){
				
				mensaje = "Error La categoria no modificada";
				tipoMensaje = JOptionPane.WARNING_MESSAGE;
				Limpiar();					

			}else{
				modelocategoria.modificarCategoria();
				mensaje="Categoria Modificada";
				tipoMensaje= JOptionPane.INFORMATION_MESSAGE;
				JOptionPane.showMessageDialog(new JPanel(),mensaje,"Sistema <<La Guapa>>    Comida Rapida",	tipoMensaje);
				Limpiar();
				}
		}
		
		//ELIMINAR
		if (ae.getActionCommand().equalsIgnoreCase(vistacategoria.getBtnEliminar().getText())){
			
			modelocategoria.setId(vistacategoria.getTxtCodigo().getText());
			modelocategoria.setDescripcion(vistacategoria.getTxtDescripcion().getText());		
			ModeloCategoria categoriaActual = new ModeloCategoria (vistacategoria.getTxtCodigo().getText(), vistacategoria.getTxtDescripcion().getText());
			
			ModeloCategoria categoriaEncontrada=modelocategoria.consultarCategoria(categoriaActual.getId());
			
			if (categoriaEncontrada == null){
				mensaje = "Error La categoria no Eliminada";
				tipoMensaje = JOptionPane.WARNING_MESSAGE;
				Limpiar();					

			}else{
				modelocategoria.eliminarCategoria();
				mensaje="Categoria Eliminada";
				tipoMensaje= JOptionPane.INFORMATION_MESSAGE;
				JOptionPane.showMessageDialog(new JPanel(),mensaje,"Sistema <<La Guapa>>    Comida Rapida",	tipoMensaje);
				Limpiar();
			}
		}
		
		if (ae.getActionCommand().equalsIgnoreCase(vistacategoria.getBtnSalir().getText())){
			vistacategoria.dispose();
		}
		
		// TODO Auto-generated method stub
	}

}
